/**
 * 网络请求处理类
 * @class RequestHandler
 */
export default class RequestHandler {
    // 服务器地址前缀
    static #BASE_URL = 'http://localhost:8081';


    /**
     * 从服务器获取资源
     * @param {*} url 资源请求地址
     * @returns 
     */
    static async get(url) {
        return await fetch(this.#BASE_URL + url, {
            method: 'GET',
            headers: this.getHeaders()
        })
            .then(this.handlerResponse)
            .catch(this.handlerError);
    }

    /**
     * 向服务器提交更新数据请求
     * @param {*} url  更新数据服务器地址
     * @param {*} data  更新的数据内容对象
     * @returns 
     */
    static async put(url, data) {
        return await fetch(this.#BASE_URL + url, {
            method: 'PUT',
            headers: this.getHeaders(),
            body: JSON.stringify(data)
        })
            .then(this.handlerResponse)
            .catch(this.handlerError);
    }



    /**
     * 处理服务器反回响应体json信息
     * @param {*} respose 
     * @returns 
     */
    static async handlerResponse(respose) {
        return respose.json();
    }


    /**
     * 处理请求错误信息
     * @param {*} respose 
     */
    static async handlerError(respose) {

    }


    /** 创建请求头信息 */
    static getHeaders() {
        const headers = new Headers();
        headers.set("Content-Type", "application/json");
        return headers;
    }


}